package com.eduplatform.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 试卷数据传输对象
 */
@Data
public class PaperDTO {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 试卷标题
     */
    @NotBlank(message = "试卷标题不能为空")
    private String title;

    /**
     * 试卷描述
     */
    private String description;

    /**
     * 总分
     */
    private Integer totalScore;

    /**
     * 考试时长（分钟）
     */
    @NotNull(message = "考试时长不能为空")
    private Integer duration;

    /**
     * 学科ID
     */
    @NotNull(message = "学科不能为空")
    private Long subjectId;

    /**
     * 学科名称
     */
    private String subjectName;

    /**
     * 教育阶段：1-小学，2-初中，3-高中，4-大学
     */
    @NotNull(message = "教育阶段不能为空")
    private Integer educationLevel;

    /**
     * 试卷状态：0-草稿，1-发布
     */
    private Integer status;

    /**
     * 创建人ID
     */
    private Long creatorId;

    /**
     * 创建人姓名
     */
    private String creatorName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 试卷中的题目列表
     */
    private List<PaperQuestionDTO> questions;

    /**
     * 获取教育阶段名称
     */
    public String getEducationLevelName() {
        if (educationLevel == null) {
            return "";
        }
        switch (educationLevel) {
            case 1:
                return "小学";
            case 2:
                return "初中";
            case 3:
                return "高中";
            case 4:
                return "大学";
            default:
                return "未知";
        }
    }

    /**
     * 获取状态名称
     */
    public String getStatusName() {
        if (status == null) {
            return "";
        }
        switch (status) {
            case 0:
                return "草稿";
            case 1:
                return "已发布";
            default:
                return "未知";
        }
    }
}